package com.accp.ssmoa.shiro;

import java.util.LinkedHashMap;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.accp.ssmoa.dao.MenuMapper;
import com.accp.ssmoa.pojo.Menu;


@Service
public class FilterChainDefinitionMapBulider {

	@Resource
	private MenuMapper menuDao;	
	
	public LinkedHashMap<String, String> bulidFilterChainDefinitionMap(){
		
		LinkedHashMap<String, String> map=new LinkedHashMap<String, String>();

		//对静态资源不需要进行认证
		map.put("/common/**", "anon");
    	// 对验证码不需要进行认证 
    	map.put("/shiro/random", "anon");
		// 对登录操作不需要进行认证 
		map.put("/shiro/doLogin", "anon");
		// 登出 
		map.put("/admin/login/logout", "logout");
		
		// 记住我登陆和认证登录都可访问
		map.put("/shiro/home", "user");
	
		List<Menu> menus=menuDao.selectMenus();
		
		for(Menu menu : menus){
			map.put(menu.getUrl(), "authc,perms["+menu.getPermission()+"]");
		}
        
		// 对其余所有页面都需要进行认证
        map.put("/**", "authc");
		return map;
	}
}
